#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define SIZE 20

// 比较两个英文字符串的不相同的字符的位置（忽略字母大小写），返回不同字符位置的数量
int strcmp_str_location(const char* str1, const char* str2, int* arr) {
        int i = 0;
            int index = 0;

                while (str1[i] != '\0' && str2[i] != '\0') {
                            // 将字符转为小写进行比较
                                    char c1 = tolower((unsigned char)str1[i]);
                                            char c2 = tolower((unsigned char)str2[i]);

                                                    if (c1 != c2) {
                                                                    arr[index] = i; // 将不相同的位置存入数组
                                                                                index++;
                                                    }
                                                            i++;
                }

                    // 检查如果 str1 比 str2 长，记录多余的字符位置
                        while (str1[i] != '\0') {
                                    arr[index] = i;
                                            index++;
                                                    i++;
                        }

                            // 检查如果 str2 比 str1 长，记录多余的字符位置
                                while (str2[i] != '\0') {
                                            arr[index] = i;
                                                    index++;
                                                            i++;
                                }

                                    return index;  // 返回不相同位置的数量
}

int main(int argc, const char* argv[]) {
        char str1[SIZE] = { 0 };
            char str2[SIZE] = { 0 };
                int arr[SIZE] = { 0 };
                    
                        printf("请输入第一个字符串：\n");
                            scanf("%s", str1);
                                printf("请输入第二个字符串：\n");
                                    scanf("%s", str2);

                                        // 获取不同字符的位置数量
                                            int diff_count = strcmp_str_location(str1, str2, arr);

                                                // 输出不相同的字符位置
                                                    if (diff_count > 0) {
                                                                printf("不同的字符位置有：\n");
                                                                        for (int i = 0; i < diff_count; i++) {
                                                                                        printf("%d ", arr[i]);
                                                                        }
                                                    } else {
                                                                printf("两个字符串完全相同。\n");
                                                    }
                                                        
                                                            return 0;
}
                                                    }
                                                                        }
                                                    }
}
                                }
                        }
                                                    }
                }
}

